package com.lmf.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.lmf.vo.Student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;


@Controller
public class Mycontroller {

    @RequestMapping(value = "/doForward.do")
    public ModelAndView doForward(String name,Integer age){
        System.out.println("学生姓名："+name+"，学生年龄："+age);
        ModelAndView mv=new ModelAndView();
        mv.addObject("name",name);
        mv.addObject("age",age);
//        mv.setViewName("show");
        mv.setViewName("forward:/hello.jsp");
        return mv;
    }

    /**
     * 处理器方法返回ModelAndView，实现重定向redirect；
     * 语法：setViewName("redirect:视图完整路径")；
     * redirect特点：不和视图解析器一同使用，配置文件中的视图解析器，不会对这个重定向生效；
     * 重定向不能访问  WEB-INF目录下的内容
     *
     * 框架对重定向的操作：
     * 1.框架会把model中的简单类型的数据，转为String类型使用，作为请求发起的jsp页面的get请求参数使用，
     *    目的是：在doRedirect.do和index.jsp两次请求之间传递数据
     *
     * 2.在目标show.jsp页面，可以使用参数集合对象  ${param.参数名}  获取请求参数值；
     *    或者使用<%=request.getParameter("name")%>
     * @param name
     * @param age
     * @return
     */
    @RequestMapping(value = "/doRedirect.do")
    public ModelAndView doRedirect(String name,Integer age){
        System.out.println("学生姓名："+name+"，学生年龄："+age);
        ModelAndView mv=new ModelAndView();
        mv.addObject("name",name);
        mv.addObject("age",age);
//        mv.setViewName("show");
        mv.setViewName("redirect:/show2.jsp");
        return mv;
    }



}
